# Sync My Matters Job

Synchronizes the My Matters list from this environment to another SharePoint environment's My Matters list.

Configuration class: SyncMyMattersCfg (SharepointCfg.SyncMyMatters)

Schedule: Once per configured time of day (multiple times per day are supported).

# Purpose

Keeps a target environment's My Matters list in sync with this (source) environment — for example, syncing a primary environment's My Matters entries into a secondary/reporting environment that mirrors the same matters under different user accounts or folder names.

# Configuration

# TargetSharepointConfigName

  • Type: string
  • Default:
  • Description: Name of the target SharepointCfg configuration to sync into. The job does not run at all if this is empty. Example: "ReportingEnvironment".

# TimeOfDay

  • Type: TimeSpan (list)
  • Default:
  • Description: Times of day to run the sync (e.g. ["06:00:00", "18:00:00"] runs twice daily). The job does not run at all if this is empty.

# ReplaceFolderNames

  • Type: string (mapping, key=value; pairs)
  • Default:
  • Description: Maps a My Matters personal-folder name (a username as it appears in the source environment) to the corresponding username in the target environment. Required whenever the two environments use different user identifiers for the same person. Example: "jdoe=jane.doe;asmith=alan.smith;".

# SkipIfNotDefinedInReplaceFolderNames

  • Type: bool
  • Default: false
  • Description: When enabled, a source folder name with no matching entry in ReplaceFolderNames is skipped instead of being synced under its original (unmapped) name. Example: true.

# How It Works

  1. Incremental sync (default): Uses SharePoint's change log (GetChanges) to find items added, updated, or deleted in the source My Matters list since the last run, tracked via a stored change token. Only Title and Category are synced for updates; matching between source and target items is done via a SourceListItemId property written on the target item.
  2. Full sync: If the job's persisted state file has SyncAllItems set to true, every item in the source My Matters list is processed instead of only the changes, and the flag is cleared afterward. There is no built-in trigger for this — set it manually in the job's state file (Config\SyncMyMatters\<ConfigName>.json) to force a full resync, for example after the change token becomes invalid.
  3. For a new item, the source folder name (username) is resolved through ReplaceFolderNames to the target environment's username; the item is skipped if no username results. The corresponding matter is located in the target Matters list by matter code (and, when MatterCodeIsNotUnique is enabled, by matching client too), and the item is created in the target My Matters list under the resolved username.
  4. Deletions in the source are propagated by removing the matching target item (looked up by SourceListItemId).

Only one run is allowed at a time per service instance; a run that overlaps a still-running previous run is skipped.

  • Jobs — other background jobs
Last Updated: 7/7/2026, 1:48:24 PM